// 功能一功能二：根据输入的格式，进行输出时间
// 第一个参数：格式 第二个参数时间
// 格式需要使用dayjs格式
export function forMatime(formatString, time = Date.now()) {
	const date = new Date(time)
	// 正则和值的关系
	const obj = {
		'Y+': date.getFullYear(),
		'M+': date.getMonth() + 1,
		'D+': date.getDate(),
		'd+': date.getDay(),
		'h+': date.getHours(),
		'm+': date.getMinutes(),
		's+': date.getSeconds()
	}
	// 遍历obj的key
	for(const key in obj) {
		// 以key值作为正则表达式
		const keyRe = new RegExp(key)
		// 如果字符串中匹配到了正则
		if(keyRe.test(formatString)) {
			// 就拿到该key对应的值进行格式化
			const value = (obj[key] + '').padStart(2, '0')
			// 然后将值替换成匹配到的值
			formatString = formatString.replace(keyRe, value)
		}
	}
	return formatString
}

// 功能三：用户输入日期和天数 根据天数算出具体的日期 正数延迟 负数缩减
export function countTime(time, day = 0, hour = 0, min = 0, second = 0) {
	const interval = day * 86400000 + hour * 3600000 + min * 60000 + second * 1000
	const unix = new Date(time).getTime()
	const nowUnix = unix + interval
	const nowDate = new Date(nowUnix)
	const year = nowDate.getFullYear()
	const month = String(nowDate.getMonth() + 1).padStart(2, '0')
	const days = String(nowDate.getDate()).padStart(2, '0')
	const hours = String(nowDate.getHours()).padStart(2, '0')
	const mins = String(nowDate.getMinutes()).padStart(2, '0')
	const seconds = String(nowDate.getSeconds()).padStart(2, '0')
	return year + '-' + month + '-' + days + ' ' + hours + ':' + mins + ':' + seconds

}

// 功能四：时期比较 一个大时期 20-21 返回true 21-20返回false
// 输入一个参数会和当前的时间比较，小就返回false 大就返回true
// 输入两个参数会进行大小比较
export function diffTime(time1, time2) {
	if(arguments.length === 0) {
		return '请输入参数'
	} else if(arguments.length === 1) {
		const unix1 = new Date(time1).getTime()
		const nowUnix = new Date().getTime()
		return unix1 > nowUnix
	}
	const unix1 = new Date(time1).getTime()
	const unix2 = new Date(time2).getTime()
	console.log(unix1, unix2)
	return unix2 >= unix1
}
